<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // let p = new Promise((resolve, reject) => {
        //     // resolve('success');
        //     reject('error')
        // })
        // // promise里的then方法 
        // // 一、then 的基本使用
        // // 每一个promise对象都会有一个then方法 ，then方法里会接收2种回调 ，onResolved 和 onRejected
        // // 都会接收 promise对象的结果值 promiseResult；
        // // 可以把 onRejected 省略掉 
        // p.then(function(res) {
        //     console.log(res);
        // },function(err) {
        //     console.log(err);
        // }) 

        // 二、then的返还值；
        let p = new Promise((resolve, reject) => {
            resolve('success');
            // reject('error')
        })

        // let thenRes = p.then((res) =>{
        //     console.log('成功了',res);
        // })
        // console.log(thenRes);
        // 1.没有返还: 得到成功状态的promise 对象 promiseResult 是undefined 

        // let thenRes = p.then((res) =>{
        //     console.log('成功了',res);
        //     return '哈哈哈哈';
        // })
        // console.log(thenRes);
        // 2.返还值 ：  会把返还值 作为下一个promise对象的promiseResult结果值返还；得到的也是一个promise对象；
        
        // let thenRes = p.then((res) =>{
        //     console.log('成功了',res);
        //     return new Promise((resolve, reject) => {
        //         resolve('success');
        //     })
        // })
        // console.log(thenRes);
        // 3.返还一个promise对象,then 会把返还的这个promise对象原封不动的返还出来

        // let thenRes = p.then((res) =>{
        //     console.log('成功了',res);
        //     throw Error('错了');
        // })
        // console.log(thenRes);
        // 4.then里抛出错误情况；
        // 会返还一个 rejected 状态的 promise对象，promiseResult 值就是报错内容
        
        let p2 = p.then((res) => {
            return 123;
        })
        let p3 = p2.then((res) => {
            console.log(res); //123
            // return new Promise((resolve, reject) => {
            //     resolve('success');
            // })
        })
        let p4 = p3.then((res) => {
            console.log(res);//undefined
        })
   
   </script>
</body>
</html>